package ink.onei.shopping.mapper;

import java.util.List;

import ink.onei.shopping.domain.Detail;
import ink.onei.shopping.domain.Goods;

/**
 * 商品Mapper接口
 * 
 * @author nekotako
 * @date 2024-02-05
 */
public interface GoodsMapper  {
    /**
     * 查询商品
     * 
     * @param goodsId 商品主键
     * @return 商品
     */
    Goods selectGoodsById(Long goodsId);

    /**
     * 查询商品列表
     * 
     * @param goods 商品
     * @return 商品集合
     */
    List<Goods> selectGoodsList(Goods goods);

    /**
     * 新增商品
     * 
     * @param goods 商品
     * @return 结果
     */
    int insertGoods(Goods goods);

    /**
     * 修改商品
     * 
     * @param goods 商品
     * @return 结果
     */
    int updateGoods(Goods goods);

    /**
     * 删除商品
     * 
     * @param goodsId 商品主键
     * @return 结果
     */
    int deleteGoodsById(Long goodsId);

    /**
     * 批量删除商品
     * 
     * @param goodsIds 需要删除的数据主键集合
     * @return 结果
     */
    int deleteGoodsByIds(Long[] goodsIds);
    
    /**
     * 批量删除商品规格
     *
     * @param goodsIds 需要删除的数据主键集合
     * @return 结果
     */
    int deleteDetailByGoodsIds(Long[] goodsIds);

    /**
     * 批量新增商品规格
     *
     * @param detailList 商品规格列表
     * @return 结果
     */
    int batchDetail(List<Detail> detailList);


    /**
     * 通过商品主键删除商品规格信息
     *
     * @param goodsId 商品ID
     * @return 结果
     */
    int deleteDetailByGoodsId(Long goodsId);
}
